﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace B2B.Web
{
    [ServiceContract]
    public interface IDataService
    {
        [OperationContract]
        Kullanici KullaniciKontrol(string eposta, string sifre, string firmakodu);

        [OperationContract]
        List<Kategori> KategoriListesi();

        [OperationContract]
        List<AltGrup> AltGrupListesi();

        [OperationContract]
        List<Stok> UrunTumListe();

        [OperationContract]
        List<Stok> UrunListe(string filtre, byte aranan);

        [OperationContract]
        Cari FirmaBul(string kodu);

        [OperationContract]
        bool SiparisSatirEkle(Siparis sip);

        [OperationContract]
        bool SiparisEkle(Siparis[] lines, bool yeniEvrak);

        [OperationContract]
        bool SiparisSatirSil(string seri, int sira, int satir);

        [OperationContract]
        bool SiparisSil(string seri, int sira);

        [OperationContract]
        bool SiparisOnayla(string seri, int sira, int kullaniciID);

        [OperationContract]
        List<SiparisDetay> SiparisBul(string seri, int sira);

        [OperationContract]
        List<SiparisOzet> SiparisListele(int CariID, byte islem, DateTime baslangic, DateTime bitis);

        [OperationContract]
        List<DovizKuru> DovizListesi();

        [OperationContract]
        bool FavoriyeEkle(int kullaniciID, int stokID);

        [OperationContract]
        bool FavoridenSil(int kullaniciID, int stokID);

        [OperationContract]
        bool GrupEkle(int ID, string Adi);

        [OperationContract]
        bool GrupSil(int ID);

        [OperationContract]
        List<KullaniciGrup> GrupListele();

        [OperationContract]
        List<Favorite> FavoriListe(int kullaniciID);

        [OperationContract]
        List<FiyatListesi> CariFiyatListesi(string cariKodu);

        [OperationContract]
        FiyatListesi StokFiyatListesi(string cariKodu, string stokKodu);

        [OperationContract]
        bool KullaniciEkle(Kullanici usr);

        [OperationContract]
        bool KullaniciSil(int KullaniciID);

        [OperationContract]
        Kullanici[] KullaniciListesi();

        [OperationContract]
        string ParametreEkle(string name, string value);

        [OperationContract]
        Parametre[] ParametreListesi();

        [OperationContract]
        string HatirlatmaMailGonder(string email);


        #region Dışardan veri Aktarım
        [OperationContract]
        string StokEkle(Stok[] dizi);

        [OperationContract]
        string StokSil(Stok[] dizi);

        [OperationContract]
        string KategoriEkle(DbKategori[] dizi);

        [OperationContract]
        string KategoriSil(DbKategori[] dizi);

        [OperationContract]
        string AltGrupEkle(DbAltGrup[] dizi);

        [OperationContract]
        string AltGrupSil(DbAltGrup[] dizi);

        [OperationContract]
        string DovizEkle(DovizKuru[] dizi);

        [OperationContract]
        string CariEkle(Cari[] dizi);

        [OperationContract]
        string CariSil(Cari[] dizi);

        [OperationContract]
        string FiyatListesiEkle(FiyatListesi[] dizi);

        [OperationContract]
        string FiyatListesiSil(FiyatListesi[] dizi);

        [OperationContract]
        Siparis[] AktarilacakSiparisler();

        [OperationContract]
        string SiparisAktarildi(string seri, int sira, int satir);
        #endregion

    }
}
